﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

[assembly:CLSCompliant(true)]
namespace SoftwareConsulting.BI11.Studio.Core.DBProviders
{
    /// <summary>
    /// Поля таблицы измерения
    /// </summary>    
    public enum DimensionTableField
    {
        None = 0,
        Key = 1,
        Name = 2,
        ParentKey = 3
    }

    /// <summary>
    /// Предопределенные таблицы/зоны проекта/системы
    /// </summary>     
    public enum PredefinedTable
    {
        None = 0,
        Objects = 1,
        Folders = 2,
        Indicators = 3,
        Tables = 4,
        Dimensions = 5,
        Cubes = 6,
        TimeSeries = 7,
        Models = 8,
        Calculations = 9,
        ClassificationProblemsWithTraining = 10,
        ActionSets = 11,
        Shortcuts = 12,
        WorkflowRecords = 13,
        Users = 14
    }

    /// <summary>
    /// Таблицы/зоны системы
    /// </summary>     
    public enum SystemTable
    {
        None = 0,
        Users = 1
    }

    /// <summary>
    /// Свойства поля таблицы
    /// </summary>
    public struct DataColumnProperties
    {
        private string _name;
        private Type _columnType;
        private object _defaultValue;
        private bool _isUniqueValue;
        private bool _toAutoInc;
        private long _autoIncSeed;
        private long _autoIncStep;

        public string Name
        {
            get
            {
                return _name;
            }
            set
            {
                _name = value;
            }
        }

        public Type ColumnType
        {
            get
            {
                return _columnType;
            }
            set
            {
                _columnType = value;
            }
        }

        public object DefaultValue
        {
            get
            {
                return _defaultValue;
            }
            set
            {
                _defaultValue = value;
            }
        }

        public bool IsUniqueValue
        {
            get
            {
                return _isUniqueValue;
            }
            set
            {
                _isUniqueValue = value;
            }
        }

        public bool ToAutoInc
        {
            get
            {
                return _toAutoInc;
            }
            set
            {
                _toAutoInc = value;
            }
        }

        public long AutoIncSeed
        {
            get
            {
                return _autoIncSeed;
            }
            set
            {
                _autoIncSeed = value;
            }
        }

        public long AutoIncStep
        {
            get
            {
                return _autoIncStep;
            }
            set
            {
                _autoIncStep = value;
            }
        }
    }

}
